<?php

namespace Rebecca\RebeccaBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

/**
 * Formulas controller.
 *
 */
class FormulasController extends Controller
{
    public function indexAction()
    {        
        /* @var $component Rebecca\RebeccaBundle\Component\ConstantesComponent */
        $component = $this->get("components.Constantes");
        $constantes = $component->getAll();
        
        /* @var $component Rebecca\RebeccaBundle\Component\ConceptosComponent */
        $component = $this->get("components.Conceptos");
        $conceptos = $component->getAll();
        
        /* @var $component Rebecca\RebeccaBundle\Component\CalendariosComponent */
        $component = $this->get("components.Calendarios");
        $calendarios = $component->getAll();
        
        /* @var $component Rebecca\RebeccaBundle\Component\TablasComponent */
        $component = $this->get("components.Tablas");
        $tablas = $component->getAll();
        
        /* @var $component Rebecca\RebeccaBundle\Component\ParametrosComponent */
        $component = $this->get("components.Parametros");
        $parametros = $component->getAll();
        
        $formulas = array(
            array(
                'nombre'  => 'Condicional Si',
                'formula' => 'IF(condicion,valor_si,valor_no)',
                'ejemplo' => 'IF(A>B,"A es mayor","B es Mayor")'
                ),
            array(
                'nombre'  => 'Valor Absoluto',
                'formula' => 'ABS(valor)',
                'ejemplo' => 'ABS(-10) resultado: 10'
                ),
            array(
                'nombre'  => 'Suma',
                'formula' => 'SUM(valor_1,valor_2,...)',
                'ejemplo' => 'SUM(1,2,3,1) resultado: 7'
                ),
            array(
                'nombre'  => 'Verdadero',
                'formula' => 'TRUE',
                'ejemplo' => 'Indica que es verdadero, IF(TRUE,"Verdadero","Falso") resultado: Verdadero'
                ),
            array(
                'nombre'  => 'Falso',
                'formula' => 'FALSE',
                'ejemplo' => 'Indica que es falso, IF(FALSE,"Verdadero","Falso") resultado: Falso'
                ),
            array(
                'nombre'  => 'Truncar',
                'formula' => 'TRUNC(valor,[numero_decimales])',
                'ejemplo' => 'TRUNC(1283.98643652,1) resultado: 1283.9; TRUNC(1283.98643652) resultado: 1283'
                ),
            array(
                'nombre'  => 'Redondear',
                'formula' => 'ROUND(valor,numero_decimales)',
                'ejemplo' => 'ROUND(1234.8948783,1) resultado: 1234.8; ROUND(1234.8948783,0) resultado: 1235; ROUND(1234.8948783,3) resultado: 1234.895'
                ),
        );
        
//        /* @var $component Rebecca\RebeccaBundle\Component\AcumuladosComponent */
//        $component = $this->get("components.Acumulados");
//        $acumulados = $component->getAll();
//        
//        /* @var $component Rebecca\RebeccaBundle\Component\FuncionesComponent */
//        $component = $this->get("components.Funciones");
//        $funciones = $component->getAll();
        
        return $this->render('RebeccaBundle:Formulas:editor.html.twig', array(
            'constantes'      => $constantes,
            'conceptos'       => $conceptos,
            'calendarios'     => $calendarios,
            'tablas'          => $tablas,
            'parametros'      => $parametros,
            'formulas'      => $formulas,
        ));
    }
}
